package model

import (
	"database/sql/driver"

	"github.com/bytedance/sonic"
)

type JStrings []string

// Value insert
func (j JStrings) Value() (driver.Value, error) {
	return sonic.Marshal(&j)
}

// Scan valueof
func (t *JStrings) Scan(v interface{}) error {
	return sonic.Unmarshal(v.([]byte), t)
}

type JStatus struct {
	Acc      uint8     `json:"acc"`    // acc
	Location Location  `json:"loc"`    // 位置信息
	Tempers  []float32 `json:"temps"`  // 温度
	Mileage  Mileage   `json:"mile"`   // 里程
	Oils     []float32 `json:"oils"`   // 油耗
	Module   Module    `json:"mod"`    // 模块状态
	Mobile   Mobile    `json:"mobile"` // 移动网络
}

func (o JStatus) Value() (driver.Value, error) {
	return sonic.Marshal(&o)
}

// Scan valueof
func (o *JStatus) Scan(v interface{}) error {
	return sonic.Unmarshal(v.([]byte), o)
}
